-
-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[V1] Add kv cache utils tests. #11513
base: main
Are you sure you want to change the base?
Conversation
👋 Hi! Thank you for contributing to the vLLM project. Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging. To run CI, PR reviewers can do one of these:
🚀 |
e19f638
to
870e282
Compare
tests/v1/core/test_kv_cache_utils.py
Outdated
|
||
# Test with an empty list | ||
with pytest.raises(IndexError): | ||
queue = FreeKVCacheBlockQueue([]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since it's valid to popleft
down to an empty queue so that free_list_tail
and free_list_head
are both None, should the initializer accept an empty list and initialize itself that way, instead of erroring?
This test is good as is, I just think it would be better to change the behavior instead to avoid code that can throw an IndexError
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given it's use cases I don't think it makes sense to accept an empty list. I also don't think we need to test this. Instead, if we want to test the initializer, we should pass a list of blocks and check if the linked list is correctly built.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for reviewing. Since the initializer is already tested in other test cases, I will remove the test for creating an empty queue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the unit tests! Could you also add unit tests for the rest functions in kv_cache_uilts.py
as well?
tests/v1/core/test_kv_cache_utils.py
Outdated
|
||
# Test with an empty list | ||
with pytest.raises(IndexError): | ||
queue = FreeKVCacheBlockQueue([]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given it's use cases I don't think it makes sense to accept an empty list. I also don't think we need to test this. Instead, if we want to test the initializer, we should pass a list of blocks and check if the linked list is correctly built.
Sure, I will add tests for other functions. |
Signed-off-by: xcnick <[email protected]>
Signed-off-by: xcnick <[email protected]>
5aa26ec
to
c10ec54
Compare
c10ec54
to
11a19dd
Compare
Signed-off-by: xcnick <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This PR adds unit tests for the kv cache related data structures of V1